home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / etc / init.d / klogd < prev    next >
Text File  |  2008-08-29  |  2KB  |  69 lines

  1. #! /bin/sh
  2. # /etc/init.d/klogd: start the kernel log daemon.
  3.  
  4. ### BEGIN INIT INFO
  5. # Provides:             klogd
  6. # Required-Start:       sysklogd
  7. # Required-Stop:        sysklogd
  8. # Default-Start:        2 3 4 5
  9. # Default-Stop:         1
  10. # Short-Description:    Kernel logger
  11. ### END INIT INFO
  12.  
  13. PATH=/bin:/usr/bin:/sbin:/usr/sbin
  14.  
  15. pidfile=/var/run/klogd/klogd.pid
  16. kmsgpipe=/var/run/klogd/kmsg
  17. kmsgpidfile=/var/run/klogd/kmsgpipe.pid
  18. binpath=/sbin/klogd
  19.  
  20. test -f $binpath || exit 0
  21. . /lib/lsb/init-functions
  22.  
  23. #  Use KLOGD="-k /boot/System.map-$(uname -r)" to specify System.map
  24. #
  25. KLOGD="-P $kmsgpipe"
  26.  
  27. test ! -r /etc/default/klogd || . /etc/default/klogd
  28.  
  29. . /lib/lsb/init-functions
  30.  
  31. case "$1" in
  32.   start)
  33.     log_begin_msg "Starting kernel log daemon..."
  34.     # create klog-writeable pid and fifo directory
  35.     mkdir -p /var/run/klogd
  36.     chown klog:klog /var/run/klogd
  37.     mkfifo -m 700 $kmsgpipe
  38.     chown klog:klog $kmsgpipe
  39.  
  40.     # shovel /proc/kmsg to pipe readable by klogd user
  41.     start-stop-daemon --start --pidfile $kmsgpidfile --exec /bin/dd -b -m -- bs=1 if=/proc/kmsg of=$kmsgpipe
  42.  
  43.     # start klogd as non-root with reading from kmsgpipe
  44.     start-stop-daemon --start --quiet --chuid klog --exec $binpath -- $KLOGD
  45.     log_end_msg $?
  46.     ;;
  47.   stop)
  48.     log_begin_msg "Stopping kernel log daemon..."
  49.     start-stop-daemon --stop --quiet --retry 3 --oknodo --exec $binpath --pidfile $pidfile
  50.     # stop kmsgpipe
  51.     start-stop-daemon --stop --quiet --oknodo --pidfile $kmsgpidfile
  52.     rm -f $kmsgpidfile $kmsgpipe
  53.     log_end_msg $?
  54.     ;;
  55.   restart|force-reload)
  56.     $0 stop
  57.     sleep 1
  58.     $0 start
  59.     ;;
  60.   status)
  61.     status_of_proc -p $pidfile $binpath klogd && exit 0 || exit $?
  62.     ;;
  63.   *)
  64.     log_success_msg "Usage: /etc/init.d/klogd {start|stop|restart|force-reload|status}"
  65.     exit 1
  66. esac
  67.  
  68. exit 0
  69.